-
Notifications
You must be signed in to change notification settings - Fork 733
[nrf noup] Bluetooth: Controller: nrf54h20 cpurad support #3506
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
cvinayak
wants to merge
2,094
commits into
nrfconnect:main
Choose a base branch
from
cvinayak:github_nrf54h20_cpurad_bt_ll_sw_split_support
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
[nrf noup] Bluetooth: Controller: nrf54h20 cpurad support #3506
cvinayak
wants to merge
2,094
commits into
nrfconnect:main
from
cvinayak:github_nrf54h20_cpurad_bt_ll_sw_split_support
+22,978
−5,795
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add support for UICR.WDTSTART. UICR.WDTSTART configures the automatic start of a local watchdog timer before the application core is booted. This provides early system protection ensuring that the system can recover from early boot failures. Upstream PR #: 97337 Signed-off-by: Sebastian Bøe <sebastian.boe@nordicsemi.no>
Scanners report these as missing so lets add them. Signed-off-by: Kari Hamalainen <kari.hamalainen@nordicsemi.no>
Enable GPIO tests on nRF54H20 CPUPPR. Upstream PR #: 97073 Signed-off-by: Piotr Krzyzanowski <piotr.krzyzanowski@nordicsemi.no>
Added aliases so that nrf54h20dk/nrf54h20/cpuapp can use MCUboot serial recovery. Signed-off-by: Andrzej Puzdrowski <andrzej.puzdrowski@nordicsemi.no> (cherry picked from commit 230b74d)
/delete-property/ for newly added aliases which points to nodes already removed in that overlay. Upstream PR #: 97062 Signed-off-by: Andrzej Puzdrowski <andrzej.puzdrowski@nordicsemi.no> (cherry picked from commit 56843f8)
The update will fail if the address is outside of this range. This failure might trigger a bad state where the device is non-trivial to recover. Signed-off-by: Håkon Amundsen <haakon.amundsen@nordicsemi.no> (cherry picked from commit 9d5f94f)
Update the default memory map to include a `secure_storage_partition`, which is divided into at most four subpartitions. These will be used to configure UICR.SECURESTORAGE, if enabled. Signed-off-by: Sebastian Bøe <sebastian.boe@nordicsemi.no> (cherry picked from commit d5003d9)
…ction Certain SPIM instances in nRF52/53/54L/54H Series provide hardware control of the CSN (chip select) line. Although the standard SPI drivers do not use this feature, it should be possible to configure this line through pinctrl in case some special driver needs this. Signed-off-by: Andrzej Głąbek <andrzej.glabek@nordicsemi.no> (cherry picked from commit ca79733)
Fix an incorrect interpretation of the chip select signal for the SPIM instances. If cs-gpios is used then the chip select pin is used as a GPIO, and should have CTRLSEL=0. Only when NRF_FUN_SPIM_CSN is used should CTRLSEL be configured to enable hardware control of the pin. Signed-off-by: Jonathan Nilsen <jonathan.nilsen@nordicsemi.no> (cherry picked from commit b28b570)
This reverts commit 915e81a. Signed-off-by: Karsten Koenig <karsten.koenig@nordicsemi.no>
Moved the nrf_etr driver from the drive/misc folder into the recently established driver/debug folder where it is a better fit. Moved the associated files such as bindings and headers accordingly as well. Signed-off-by: Karsten Koenig <karsten.koenig@nordicsemi.no> (cherry picked from commit d833556)
Pinctrl needs to set the needed drive and direction of the pins. Also this later allows automatically setting the clock bit for the traceclk pin. Signed-off-by: Karsten Koenig <karsten.koenig@nordicsemi.no> (cherry picked from commit 85363f9)
Added driver and bindings for the coresight nrf submodule. add integrated it for the nrf54h20. The coresight subsystem is a combination of ARM Coresight peripherals that get configured together to achieve a simplified configuration based on a desired operating mode. This also replaces the previous handling in the nrf54h20 soc.c which was powering the subsystem up but not configuring it. Signed-off-by: Karsten Koenig <karsten.koenig@nordicsemi.no> (cherry picked from commit 6066a42)
Replaced the old tddconf with the full coresight driver that configures the coresight peripherals locally on the running core. Also fixed minor bug in the corresponding sample where messages were not shown for the radio core. Signed-off-by: Karsten Koenig <karsten.koenig@nordicsemi.no> (cherry picked from commit 02fb6fa)
Make sure the nordic_vpr_launcher gets started after the coresight driver if that is present. Signed-off-by: Karsten Koenig <karsten.koenig@nordicsemi.no> (cherry picked from commit 24353a8)
Added a new convience snippet to redirect logs to STM and then sink them to TPIU where they can be captured by a trace probe. Signed-off-by: Karsten Koenig <karsten.koenig@nordicsemi.no> (cherry picked from commit 0b5bb3c)
The JLinkScript originally configured more than needed which reduces readability, so stripped it down to the minimum. At the same time improved behavior under reset and added ETM to the radiocore JLinkScript. Signed-off-by: Karsten Koenig <karsten.koenig@nordicsemi.no> (cherry picked from commit a50dc9f)
Configure SDP MSPI pins to switch their control to VPR core Signed-off-by: Jakub Zymelka <jakub.zymelka@nordicsemi.no> Signed-off-by: Andrzej Głąbek <andrzej.glabek@nordicsemi.no> Signed-off-by: Magdalena Pastula <magdalena.pastula@nordicsemi.no> Signed-off-by: Karsten Koenig <karsten.koenig@nordicsemi.no> (cherry picked from commit a9bcc44) (cherry picked from commit 2e74ea7) (cherry picked from commit 915e81a)
…river There were recent changes to nrf54h20dk and STM driver. Align test accordingly: - add Kconfig that boots Radio core, - update expected timing results. Signed-off-by: Sebastian Głąb <sebastian.glab@nordicsemi.no> (cherry picked from commit 3d56c2f)
This reverts commit 4fa4304. Signed-off-by: Triveni Danda <triveni.danda@nordicsemi.no>
Fix overriding the test certificates directory for enterprise mode when using sysbuild. The override already works as expected without sysbuild. Signed-off-by: Triveni Danda <triveni.danda@nordicsemi.no> (cherry picked from commit 57a35d9)
Add support for UICR.SECONDARY.TRIGGER configuration, which enables automatic booting of secondary firmware based on specific reset reasons. This introduces Kconfig options for configuring: - UICR.SECONDARY.TRIGGER.ENABLE - Enable/disable automatic triggers - UICR.SECONDARY.TRIGGER.RESETREAS - Bitmask of reset reasons that trigger secondary firmware boot Individual Kconfig options are provided for each reset reason: - APPLICATIONWDT0/1 - Application core watchdog timeouts - APPLICATIONLOCKUP - Application core CPU lockup - RADIOCOREWDT0/1 - Radio core watchdog timeouts - RADIOCORELOCKUP - Radio core CPU lockup Signed-off-by: Sebastian Bøe <sebastian.boe@nordicsemi.no> (cherry picked from commit 9dc2b61)
…ECTEDMEM Add support for UICR.SECONDARY.PROTECTEDMEM configuration, which enables configuration of the protected memory region for secondary firmware. This introduces Kconfig options for configuring: - GEN_UICR_SECONDARY_PROTECTEDMEM - Enable/disable protected memory for secondary firmware - GEN_UICR_SECONDARY_PROTECTEDMEM_SIZE_BYTES - Size of the protected memory region in bytes The implementation validates that the configured size is divisible by 4096 bytes (4 KiB) as required by the hardware, and converts it to 4 KiB units when writing to UICR.SECONDARY.PROTECTEDMEM.SIZE4KB. Signed-off-by: Sebastian Bøe <sebastian.boe@nordicsemi.no> (cherry picked from commit c3f6b8c)
Add support for UICR.LOCK configuration, which locks the entire UICR configuration in NVR0 to prevent unauthorized modifications. This introduces a Kconfig option GEN_UICR_LOCK that enables locking of the UICR. Once locked, the UICR can only be modified by performing an ERASEALL operation. This is a critical security feature for production devices, typically enabled alongside UICR.APPROTECT, UICR.PROTECTEDMEM, and UICR.ERASEPROTECT to establish a complete device protection scheme. When enabled, the gen_uicr.py script sets UICR.LOCK to 0xFFFFFFFF, which configures the NVR0 page as read-only and enforces integrity checks on the UICR content. Signed-off-by: Sebastian Bøe <sebastian.boe@nordicsemi.no> (cherry picked from commit 1ffdf09)
Add support for UICR.ERASEPROTECT configuration, which blocks ERASEALL operations to prevent bulk erasure of protected memory. This introduces a Kconfig option GEN_UICR_ERASEPROTECT that enables blocking of ERASEALL operations on NVR0, preserving UICR settings even if an attacker attempts a full-chip erase. This is a critical security feature for production devices. When enabled together with UICR.LOCK, it becomes impossible to modify the UICR in any way, establishing a permanent device protection scheme. Due to this irreversibility, it should only be enabled during the final stages of production. When enabled, the gen_uicr.py script sets UICR.ERASEPROTECT to 0xFFFFFFFF, which prevents the ERASEALL command from affecting the NVR0 page. Signed-off-by: Sebastian Bøe <sebastian.boe@nordicsemi.no> (cherry picked from commit e20352d)
Add support for UICR.APPROTECT configuration, which controls debugger and access-port permissions through the TAMPC peripheral. This introduces three Kconfig options that allow independent control over access port protection for different processor domains: - GEN_UICR_APPROTECT_APPLICATION_PROTECTED: Controls debug access to the application domain processor - GEN_UICR_APPROTECT_RADIOCORE_PROTECTED: Controls debug access to the radio core processor - GEN_UICR_APPROTECT_CORESIGHT_PROTECTED: Controls access to the CoreSight debug infrastructure When enabled, each option sets the corresponding UICR.APPROTECT register to PROTECTED (0xFFFFFFFF), which disables debug access for that domain. When disabled, the registers remain at their erased value (UNPROTECTED), allowing full debug access. This feature is critical for production devices where debug access must be restricted to prevent unauthorized access to sensitive code and data. Signed-off-by: Sebastian Bøe <sebastian.boe@nordicsemi.no> (cherry picked from commit 1438f8a)
…e transition Add --permit-permanently-transitioning-device-to-deployed safety flag to gen_uicr.py, required when enabling both UICR.LOCK and UICR.ERASEPROTECT together. This prevents accidental permanent locking of devices since this combination makes the configuration irreversible. Signed-off-by: Sebastian Bøe <sebastian.boe@nordicsemi.no> (cherry picked from commit 35b89ab)
- The UUID is the device unique identifier read from the OTP and made available in boot report to avoid the repetitive slow reads from OTP. Signed-off-by: Aymen LAOUINI <aymen.laouini@nordicsemi.no> (cherry picked from commit 4312c88)
…r/zephyr.hex uicr/zephyr/zephyr.hex needs to be built after all other zephyr images. Instead of adding a dependency on uicr, we check the sysbuild_images property to find images. Also, we check it as late possible by using the cmake_language(DEFER DIRECTORY feature. Which will ensure that running this code will be one of the last things that the CMake sysbuild program does at Configure time. Upstream PR #: 97685 Signed-off-by: Sebastian Bøe <sebastian.boe@nordicsemi.no>
…ronSide LED pins need to be set in the cpuapp/iron rev. 0.2.0 overlay. Signed-off-by: Tommi Kangas <tommi.kangas@nordicsemi.no> (cherry picked from commit f8f87c0)
…tion" This reverts commit 5984d72. Signed-off-by: Jamie McCrae <jamie.mccrae@nordicsemi.no>
Use different GPIOTE interrupt number when building for cpuapp/ns. Upstream PR #: 99247 Signed-off-by: Michał Stasiak <michal.stasiak@nordicsemi.no>
…ion" This reverts commit e6d6cc0. Signed-off-by: Tomasz Chyrowicz <tomasz.chyrowicz@nordicsemi.no>
This reverts commit b856d4e. Signed-off-by: Tomasz Chyrowicz <tomasz.chyrowicz@nordicsemi.no>
… XIP" This reverts commit 0fb7618. Signed-off-by: Tomasz Chyrowicz <tomasz.chyrowicz@nordicsemi.no>
Fixes an issue whereby just enabling hooks would enable the nrf5340 network core hook despite lacking other requirements Signed-off-by: Jamie McCrae <jamie.mccrae@nordicsemi.no> Signed-off-by: Tomasz Chyrowicz <tomasz.chyrowicz@nordicsemi.no> (cherry picked from commit b856d4e)
When remote peer have closed the PPP link normally, the PPP stack on Zephyr side switches back to ESTABLISH phase to be ready for next handshake. When calling net_if_down() on the interface, it should not try to initiate LCP link termination, but instead go directly to DEAD phase. See https://datatracker.ietf.org/doc/html/rfc1661#section-3.2 Upstream PR #: 99078 Signed-off-by: Seppo Takalo <seppo.takalo@nordicsemi.no>
Add support for nrf54lm20a board in i2c_nrfx_twim tests Upstream PR #: 99178 Signed-off-by: Piotr Krzyzanowski <piotr.krzyzanowski@nordicsemi.no>
As future nRF54L SoCs may differ in terms of content, general SOC_NRF54L_CPUAPP_COMMON symbol needs to cover less symbols. These will be selected by specific SoC based on support. Upstream PR #: 99239 Signed-off-by: Michał Stasiak <michal.stasiak@nordicsemi.no>
The can_nrf.c device driver used DEVICE_DT_INST_DEFINE instead of CAN_DEVICE_DT_INST_DEFINE, which means we are missing initialization of some CAN structures, namely STATS. Update driver to use CAN_DEVICE_DT_INST_DEFINE() Upstream PR #: 99259 Signed-off-by: Bjarki Arge Andreasen <bjarki.andreasen@nordicsemi.no>
…LOCK_CONTROL The GRTC timer, typically used as sys clock on newer nordic chips, is currently tightly coupled to the CLOCK_CONTROL_NRF drivers though not being dependent on it. The GRTC and its device driver is independent from CLOCK_CONTROL, its clock requirements are managed by hardware, based on its clock source selection. This commit moves the clock source selection to the GRTC driver, and removes the hard coupling to the CLOCK_CONTROL drivers. To preserve backwards compatibility, if CLOCK_CONTROL_NRF_K32SRC_RC is selected, GRTC will default to LFLPRC. Upstream PR #: 99147 Signed-off-by: Bjarki Arge Andreasen <bjarki.andreasen@nordicsemi.no>
The UART device used by the backend needs to be gotten before use, and put after. In limited cases, device drivers call pm_device_runtime_get() as part of the call to uart_rx_enable(), this is not the case for polling, nor interrupt driven API calls for most if not all drivers, nor is that expected. Implement pm_device_runtime calls in shell uart backend similar to the logging uart backend to support all uart drivers in all configurations. Upstream PR #: 98681 Signed-off-by: Bjarki Arge Andreasen <bjarki.andreasen@nordicsemi.no>
Add support for device runtime power management. Suspending the device will place it into sleep mode, its lowest power state. All config will be lost when suspending the device. Do not allow suspending the device if it is started or has RX filters registered. The application has to reconfigure the CAN device to resume expected operation. Signed-off-by: Ryan Erickson <ryan.erickson@ezurio.com> (cherry picked from commit 631dbd9)
Implement CAN_MODE_ONE_SHOT in MCAN impementation. The implementation contains a workaround for a bug in the MCAN IP which prevents an IRQ from triggering. This is a noup as the workaround is too complicated and the feature is too niche to be accepted it upstream. Signed-off-by: Bjarki Arge Andreasen <bjarki.andreasen@nordicsemi.no>
Remove the handling of cross domain pins from nrf drivers. To use cross domain in tests, force on constlat and disable power domains for the test. Signed-off-by: Bjarki Arge Andreasen <bjarki.andreasen@nordicsemi.no> (cherry picked from commit 306c3d4)
…rder The clock options used within the driver are supposed to be ordered from lowest to highest power consumption, so the lowest/default option is the most power efficient. The order was reversed to make the init code of the lfclk a bit simpler, and this was accounted for in the clock option lookup function. However, the common nrf clock control request/release feature would request the lowest index, not the lowest clock option, so the lfclk would default to its highest power consumption mode. The clock option init and lookup has been refactored to be sorted from lowest to highest power consumption, and comments have been adjusted accordingly. Upstream PR #: 99382 Signed-off-by: Bjarki Arge Andreasen <bjarki.andreasen@nordicsemi.no>
…kend" This reverts commit 736a34f. UART backend is implemented in Serial Modem add-on. Signed-off-by: Markus Lassila <markus.lassila@nordicsemi.no>
…dt reg check - Activate the UICR file generation and PeriphConf for nRF92 application. - Add condition in reg dt check file to use the correct uicr node name for nRF92X. - Generation of preriphconf entries filters on device names to match the first 5 characters to nrf92 or the 6 first characters to nrf54h, this information is also used to determine the device SOC_SERIES to be either SOC_SERIES_NRF54HX or SOC_SERIES_NRF92X allowing possible extension of usage. Still in case of an unknown device of a certain family it will use existing configuration while generating periphconf entries. Signed-off-by: Aymen LAOUINI <aymen.laouini@nordicsemi.no> (cherry picked from commit d9861d7)
- nRF9280 memory_map_iron is missing periphconf_partition, added this partition to mram11 at address 0xe60a000. - Add secure_storage_partition at 0xe60c000 to memory map. This partition is devided in two: cpuapp_crypto_partition and cpuapp_its_partition, both are 4KB. Those partitions are used by gen_uicr.py script to generate the UICR file. Signed-off-by: Aymen LAOUINI <aymen.laouini@nordicsemi.no> (cherry picked from commit 8f0fbbe8aa8510ec02719b4c7b5c186fb82f3ca0)
- Removed cpurad_uicr and cpuapp_uicr nodes and added uicr node at address 0xfff8000 for nRF9280. - Add bicr node defined in same node as uicr but at offset 800. - Add tdd_peripherals node. Signed-off-by: Aymen LAOUINI <aymen.laouini@nordicsemi.no> (cherry picked from commit ba420519af42516613ebb100343141699e8adbbb)
nrf54h20 cpurad bt_ll_sw_split support. Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
NordicBuilder
added a commit
to NordicBuilder/sdk-nrf
that referenced
this pull request
Nov 18, 2025
Automatically created by action-manifest-pr GH action from PR: nrfconnect/sdk-zephyr#3506 Signed-off-by: Nordic Builder <pylon@nordicsemi.no>
FICR compile error fixed ECB compile error fixed SWI compile error fixed draft modification for radio Update radio.c due to miss some device check Signed-off-by: Jui-Chou Chung <jui-chou.chung@nordicsemi.no> Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
Added initial implementation for nrf54hx LF clock control. Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
Added initial implementation for nrf54hx GRTC use for Radio. Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
Added initial implementation for nrf54hx HF clock control. Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
c9c7f62 to
5bb7f21
Compare
NordicBuilder
added a commit
to NordicBuilder/sdk-nrf
that referenced
this pull request
Nov 18, 2025
Automatically created by action-manifest-pr GH action from PR: nrfconnect/sdk-zephyr#3506 Signed-off-by: Nordic Builder <pylon@nordicsemi.no>
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
nrf54h20 cpurad bt_ll_sw_split support.
How to build: